package com.study.example.ex01;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

import org.junit.Before;
import org.junit.Test;

/**
* @Name: CollectionDataAndFile
* @Description: 将集合中的字符串数据存储到文本文件，并从文本文件中读取数据（每一行为一个字符串数据）到集合中，遍历输出到控制台。
* 分析：
* 	字符串存取，为文本操作，文件操作使用字符流
* @Author: 李超	lc_jack@foxmail.com
* @CreateDate: 2017-1-16 上午10:34:54 
* @Version: V1.0
 */
public class CollectionDataAndFile {
	
	private ArrayList<String> strList = null ;
	
	/**
	* @Name: arrayListData2File
	* @Description: 将集合中的字符串数据存储到文本文件
	* @Author: 李超	lc_jack@foxmail.com
	* @Version: V1.0
	* @CreateDate: 2017-1-16 上午10:45:11
	* @Parameters: @throws IOException
	* @Return: void
	 */
	@Test
	public void arrayListData2File() throws IOException{
		strList = new ArrayList<>() ;
		String str = "hello" ;
		//创建集合字符串数据
		for (int i = 0; i < 10; i++) {
			strList.add(str + i) ;
		}
		//将集合数据存储到文本文件
		BufferedWriter writer = new BufferedWriter(new FileWriter("ArrayListData.txt")) ;
		for(String line : strList) {
			writer.write(line) ;
			writer.newLine() ;
			writer.flush() ;
		}
		//释放资源
		writer.close() ;
	}
	
	@Test
	public void fileData2ArrayList() throws IOException {
		strList = new ArrayList<>() ;
		//从文本文件中读取数据（每一行为一个字符串数据）到集合中
		BufferedReader reader = new BufferedReader(new FileReader("ArrayListData.txt")) ;
		String line = null ;
		while((line = reader.readLine()) != null) {
			strList.add(line) ;
		}
		//遍历输出到控制台
		for(String str : strList) {
			System.out.println(str);
		}
		//释放资源
		reader.close() ;
	}

}
